草庐IT

Python Django 模板 : Iterate Through List

全部标签

c++ - 在位置 N 处检索 C++ 可变参数模板常量参数值的适当方法是什么?

我想知道在位置N(N在编译时已知)处检索可变参数模板常量参数值的正确方法是什么。例如,假设您有一个模板接收可变数量的函数指针作为参数,您需要检索第二个函数指针。现在,我能想到的只有这个……typedefint(*func)(int);templatestructtestme{inlineintgetme(intp)const{returnstd::array{F...}[1](p);}};...不用说,这是非常骇人听闻的。有一个更好的方法吗?谢谢。编辑:基于typedeftemplate的代码,我制作了一个可以接受任何类型作为可变模板参数的版本。它已经过测试,可以在GCC4.6的实验版

c++ - 将类型信息传递给函数代替虚拟模板函数 C++

我有一个实现以下内容的基类:structConsumer{templatevoidcallback(Tmsg){/*nullimplementation*/}};然后我有一个类实现这个:structClient:publicConsumer{voidcallback(Msg1msg);voidcallback(Msg2msg);voidcallback(Msg3msg);};问题是我有一个Client对象的容器被视为Consumer*,我想不出一种方法让这些Consumer对象调用派生函数。我的预期功能是拥有多个客户端,每个客户端都为每个Msg类实现一个重载函数,这对它们来说意味着什么

修改解析树以评估模板语言的继承

我正在构建用于模板(例如Jinja,Twig)语言的Linter程序,该语言的结构称为“块”。我敢肯定,你们中的许多人都熟悉模板语言中块的概念。现在,一个包含这些块的模板可以被另一个模板,儿童模板,具有相同名称的另一个模板覆盖,并为其定义了自己的内容和功能。因此,在评估给定的源代码(用于范围检查)时,要求是我首先评估子女模板中的所有块。然后,我必须将块放在根模板中定义的地方,并应再次进行评估,以检查是否违反了根模板的模板范围范围属性(变量,宏等)。我首先使用Antlr4访问儿童模板。因此,在ANTLR中,我击中了块,我在那里进行评估,然后在根模板的解析树上打电话给另一个访客。但是,如何将孩子块

c++ - 如何从成员函数模板类型签名中删除 const?

我正在研究一些C++类型系统的东西,但我在从成员函数中删除const-ness以用于函数特征类时遇到问题。真正麻烦的是,这在G++中运行良好,但MSVC10无法正确处理部分特化,我不知道这些编译器中的一个是否真的存在错误。这里的问题是,以我可以获得函数类型签名的方式从成员函数中删除const限定符的正确方法是什么?采用以下代码示例:#includetemplatestructRemovePointer{typedefTType;};templatestructRemovePointer{typedefTType;};templatestructRemovePointer{typedef

c++ - 与声明分开定义模板类的模板成员

#includetemplatestructFoo{templatestaticboolBar();};templatetemplateboolFoo::Bar(){returntrue;}intmain(){boolb=Foo::Bar();b;}这会导致链接器错误:main.obj:errorLNK2019:unresolvedexternalsymbol"public:staticbool__cdeclFoo::Bar(void)"(??$Bar@J@?$Foo@H@@SA_NXZ)referencedinfunctionmain我需要在类模板的声明之外定义这个成员函数。换句话说

c++ - std::set 用作静态模板化成员变量

我正在尝试制作类似于Java风格的枚举,我将其称为标志。要求是每个标志都是静态的,因此标志可以直接引用,每个标志存储其名称的字符串和整个集合可迭代并有助于查找。我正在使用模板,以便单独存储每组标志(这样我就不必在每个子类中显式放置一组)。我确信这是一个启动问题,因为运行程序的成功或失败取决于包含标志声明的目标文件的文件名(A.o段错误但Z.o运行良好。)问题似乎是静态初始化顺序之一,这段代码编译得很好,但是当它运行时,gdb产生以下内容:ProgramreceivedsignalSIGSEGV,Segmentationfault.0x00007ffff751e0fainstd::_Rb

C++0x:std::function::target 和模板参数出错

我目前使用C++0x编写事件处理程序系统。每个事件的“处理程序”(可以有多个处理程序)通过传递可以存储在std::function中的任何类型的函数/方法来注册。目的。这是使用重载的+=运算符以C#风格完成的。我的事件类看起来基本上是这样的(为了更好的可读性而被剥离):templateclassEvent{public:typedefTHandlerReturn(HandlerSignature)(THandlerArgs...);typedefTHandlerReturn(*HandlerFuntionPtr)(THandlerArgs...);typedeftypenamestd:

c++ - 函数指针和模板

为什么下面的代码有效?classfoo{public:templateintMap(Ffunction)const{returnfunction(2);}};intDouble(intn){return2*n;}intmain(){foof;intn=f.Map(Double);}我的理解是接受函数指针的函数必须有这样的格式:voidfoo(int(*ptf)(int))所以Map函数应该是这样的intMap(int(*ptf)(int)){return(*ptf)(2);}它是否以某种方式在运行时或编译时通过模板解析函数?以上代码在vc++2010编译运行

c++ - 选择模板参数包中的每个偶数(或奇数)参数

我想允许使用我正在编写的类作为模板参数指定类型列表以及这些类型的分配器列表,其方式是类型位于奇数位置,分配器位于偶数位置:templateclassMyClass{//Stuffinside}intmain(){MyClassc1;MyClassc2;MyClassc3;//Andsoon....}在内部,存储类型vector的元组是有意义的:std::tuple...>m_storage_;和一个分配器元组用于使用:std::tuple...>m_storage_;我如何在代码中实际声明这些元组?理论上我需要以某种方式选择参数包中的每个奇数/偶数类型-这可能吗?

c++ - 指向 const 类型的 const 指针的模板特化

我正在阅读http://bartoszmilewski.wordpress.com/2009/10/21/what-does-haskell-have-to-do-with-c/并遇到这段代码来检查类型是否为指针:templatestructisPtr{staticconstboolvalue=false;};templatestructisPtr{staticconstboolvalue=true;};templatestructisPtr{staticconstboolvalue=true;};我如何专门化通用模板来处理指向const类型的const指针的情况?如果我这样做:std